﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace UtilReportOMS.Class
{
    public class GlobalServices
    {
        private static UtilReportOMS.Service_NPCUS.Service_NPCUS service_NPCUS;
        public static UtilReportOMS.Service_NPCUS.Service_NPCUS Service_NPCUS
        {
            get
            {
                try
                {
                    if (service_NPCUS == null)
                    {
                        string strAddress = "";
                        DataSet ds = new DataSet();
                        ds.ReadXml(@"C:\NPCUSConfig\ApplicationServers.xml");
                        if (ds == null)
                        {
                            CMISLibrary.Utility.ShowMsg("Không tồn tại file cấu hình", "Thông báo");
                            strAddress = "";
                        }
                        else
                            if (ds.Tables.Contains("APPLICATION_SERVER") == false)
                            {
                                CMISLibrary.Utility.ShowMsg("File cấu hình không đúng định dạng", "Thông báo");
                                strAddress = "";
                            }
                            else
                                if (ds.Tables["APPLICATION_SERVER"].Rows.Count == 0)
                                {
                                    CMISLibrary.Utility.ShowMsg("Không tồn tại dữ liệu cấu hình", "Thông báo");
                                    strAddress = "";
                                }
                                else
                                {
                                    strAddress = Convert.ToString(ds.Tables["APPLICATION_SERVER"].Rows[0]["ADDRESS"]);
                                }
                        if (strAddress == "")
                        {
                            service_NPCUS = null;
                        }
                        else
                        {
                            service_NPCUS = new UtilReportOMS.Service_NPCUS.Service_NPCUS();
                            service_NPCUS.Url = strAddress + @"/Service_NPCUS/Service_NPCUS.asmx";
                        }
                        service_NPCUS.Timeout = Int32.MaxValue;
                        return service_NPCUS;
                    }
                    else
                    {
                        service_NPCUS.Timeout = Int32.MaxValue;
                        return service_NPCUS;
                    }
                }
                catch (Exception ex)
                {
                    CMISLibrary.Utility.ShowMsg("Lỗi khởi tạo service tiện ích NPC: " + ex.Message, "Thông báo");
                    service_NPCUS = null;
                    return service_NPCUS;
                }
            }
        }
    }
}
